package com.igeek.boot;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;

/**
 * Hello world!
 *
 * SpringBoot整合cache缓存：
 * 1.在pom.xml中 引入 spring-boot-starter-cache
 * 2.启用缓存，在主启动类上方标注注解@EnableCaching
 * 3.分析自动配置原理：  CacheAutoConfiguration --》 CacheProperties
 *                  --》@Import({ CacheConfigurationImportSelector.class}）提前导入所有可以用缓存组件的配置类
 *
 * CacheConfiguration缓存配置类：@Bean注入缓存管理器
 *      默认生效的配置类SimpleCacheConfiguration
 *      引入redis场景启动器后 生效 RedisCacheConfiguration
 *
 * CacheManager缓存管理器 核心方法Cache getCache(String name)：根据value属性值获取缓存空间
 *      默认提供的是ConcurrentMapCacheManager 本地缓存管理器
 *      引入redis场景启动器后 提供的是RedisCacheManager
 *
 * Cache 缓存组件       核心方法：lookup获取缓存数据 / put存储缓存数据
 *      默认提供的是ConcurrentMapCache 本地缓存接口
 *      引入redis场景启动器后 提供的是RedisCache 注意缓存的数据要实现Serializable接口
 *
 * SpringBoot整合缓存cache 切换缓存组件为redis
 * 1.引入redis pool 两个依赖
 * 2.在application.yml文件 redis 和 pool 相关的连接信息
 * 3.在RedisConfig配置类 定制缓存的管理器 替换底层组件
 *
 */
@SpringBootApplication
@MapperScan("com.igeek.boot.mapper")
public class CacheApplication
{
    public static void main( String[] args )
    {
        SpringApplication.run(CacheApplication.class,args);
    }
}
